from epm.models.database import db_session, init_db, shutdown_session, engine
from sqlalchemy.types import Date, DateTime
import datetime

from epm.models.usuario import Usuario
from epm.models.proyecto import Proyecto
from epm.models.fase import Fase
from epm.models.estadoFase import EstadoFase
from epm.models.estadoProyecto import EstadoProyecto
from epm.models.estadoLB import EstadoLB
from epm.models.lineaBase import LineaBase
from epm.models.estadoSC import EstadoSC
from epm.models.comite import Comite
from epm.models.permiso import Permiso
from epm.models.rol import Rol
from epm.models.atributoTipo import AtributoTipo
from epm.models.tipoItem import TipoItem
from epm.models.tipoCampo import TipoCampo
from epm.models.item import Item
from epm.models.relacion import Relacion
from epm.models.tipoRelacion import TipoRelacion
from epm.models.estadoItem import EstadoItem
from epm.models.atributoItem import AtributoItem
from epm.models.lineaBase import LineaBase
import hashlib
from epm.models.relacionManager import RelacionManager
from epm.models.relacion import relacion, Relacion
from epm.models.solicitudCambio import solicitud, SolicitudCambio
from epm.models.votosComite import votosComite, VotosComite
from epm.models.adjunto import adjunto, Adjunto


"""
Encargado de crear la conexion con la base de datos
"""

init_db()
session = db_session()


""" Tablas cargadas estaticamente """

# Permisos de Administrador
p1 = Permiso(codigo="10000", descripcion="gestionar usuarios")
p2 = Permiso(codigo="20000", descripcion="gestionar proyectos")
permiso1 = Permiso(codigo="00001", descripcion="crear usuario")
permiso2 = Permiso(codigo="00002", descripcion="eliminar usuario")
permiso3 = Permiso(codigo="00003", descripcion="modificar usuario")
permiso4 = Permiso(codigo="00004", descripcion="consultar usuario")
permiso5 = Permiso(codigo="00005", descripcion="crear proyecto")
permiso6 = Permiso(codigo="00006", descripcion="eliminar proyecto")
permiso7 = Permiso(codigo="00007", descripcion="modificar proyecto")
permiso8 = Permiso(codigo="00008", descripcion="consultar proyecto")

# Permisos de Lider de Proyecto
p3 = Permiso(codigo="30000", descripcion="gestionar roles")
p4 = Permiso(codigo="40000", descripcion="gestionar usuarios del proyecto")
p5 = Permiso(codigo="50000", descripcion="gestionar comite")
p6 = Permiso(codigo="60000", descripcion="consultas administracion")
p7 = Permiso(codigo="70000", descripcion="gestionar fases")
p8 = Permiso(codigo="80000", descripcion="gestionar tipos de item")
p9 = Permiso(codigo="90000", descripcion="gestionar linea base")
p10 = Permiso(codigo="11000", descripcion="gestionar solicitud de cambio")
p15 = Permiso(codigo="16000", descripcion="consultas gestion de cambios")
permiso9 = Permiso(codigo="00009", descripcion="crear rol")
permiso10 = Permiso(codigo="00010", descripcion="asignar permisos a rol")
permiso11 = Permiso(codigo="00011", descripcion="modificar rol")
permiso12 = Permiso(codigo="00012", descripcion="eliminar rol")
permiso13 = Permiso(codigo="00013", descripcion="desasignar permisos de rol")
permiso14 = Permiso(codigo="00014", descripcion="consultar rol")
permiso15 = Permiso(codigo="00015", descripcion="asignar rol a usuario")
permiso16 = Permiso(codigo="00016", descripcion="desasignar rol de usuario")
permiso17 = Permiso(codigo="00017", descripcion="agregar integrante a comite")
permiso18 = Permiso(codigo="00018", descripcion="modificar integrante de comite")
permiso19 = Permiso(codigo="00019", descripcion="inicializar fase")
permiso20 = Permiso(codigo="00020", descripcion="modificar fase")
permiso21 = Permiso(codigo="00021", descripcion="abrir fase")
permiso22 = Permiso(codigo="00022", descripcion="cerrar fase")
permiso23 = Permiso(codigo="00023", descripcion="consultar fase")
permiso24 = Permiso(codigo="00024", descripcion="inicializar proyecto")
permiso25 = Permiso(codigo="00025", descripcion="finalizar proyecto")

# Permisos Generales
p16 = Permiso(codigo="17000", descripcion="gestionar items")
p17 = Permiso(codigo="18000", descripcion="generar solicitud de cambio")
permiso26 = Permiso(codigo="00026", descripcion="crear tipo de item")
permiso27 = Permiso(codigo="00027", descripcion="modificar tipo de item")
permiso28 = Permiso(codigo="00028", descripcion="eliminar tipo de item")
permiso29 = Permiso(codigo="00029", descripcion="importar tipo de item")
permiso30 = Permiso(codigo="00030", descripcion="consultar tipo de item")
permiso31 = Permiso(codigo="00031", descripcion="crear linea base")
permiso32 = Permiso(codigo="00032", descripcion="aprobar linea base")
permiso33 = Permiso(codigo="00033", descripcion="romper linea base")
permiso34 = Permiso(codigo="00034", descripcion="consultar linea base")
permiso35 = Permiso(codigo="00035", descripcion="asignar item a linea base")
permiso36 = Permiso(codigo="00036", descripcion="desasignar item de linea base")
permiso37 = Permiso(codigo="00037", descripcion="crear item")
permiso38 = Permiso(codigo="00038", descripcion="modificar item")
permiso39 = Permiso(codigo="00039", descripcion="eliminar item")
permiso40 = Permiso(codigo="00040", descripcion="consultar item")
permiso41 = Permiso(codigo="00041", descripcion="aprobar item")
permiso42 = Permiso(codigo="00042", descripcion="generar solicitud de cambio")
permiso43 = Permiso(codigo="00043", descripcion="votar solicitud de cambio")
permiso44 = Permiso(codigo="00044", descripcion="restaurar item")
permiso45 = Permiso(codigo="00045", descripcion="atributos item")
permiso46 = Permiso(codigo="00046", descripcion="revivir item")
permiso47 = Permiso(codigo="00047", descripcion="agregar atributos tipo")
permiso48 = Permiso(codigo="00048", descripcion="eliminar atributos tipo")
permiso49 = Permiso(codigo="00049", descripcion="modificar linea base")
permiso50 = Permiso(codigo="00050", descripcion="asignar usuario a proyecto")
permiso51 = Permiso(codigo="00051", descripcion="desasignar usuario de proyecto")
permiso52 = Permiso(codigo="00052", descripcion="calcular costo")
permiso53 = Permiso(codigo="00053", descripcion="calcular complejidad")
permiso54 = Permiso(codigo="00054", descripcion="adjuntar item")
permiso55 = Permiso(codigo="00055", descripcion="modificar item por solicitud")

session.add(p1)
session.add(p2)
session.add(p3)
session.add(p4)
session.add(p5)
session.add(p6)
session.add(p7)
session.add(p8)
session.add(p9)
session.add(p10)
session.add(p15)
session.add(p16)
session.add(p17)
session.add(permiso1)
session.add(permiso2)
session.add(permiso3)
session.add(permiso4)
session.add(permiso5)
session.add(permiso6)
session.add(permiso7)
session.add(permiso8)
session.add(permiso9)
session.add(permiso10)
session.add(permiso11)
session.add(permiso12)
session.add(permiso13)
session.add(permiso14)
session.add(permiso15)
session.add(permiso16)
session.add(permiso17)
session.add(permiso18)
session.add(permiso19)
session.add(permiso20)
session.add(permiso21)
session.add(permiso22)
session.add(permiso23)
session.add(permiso24)
session.add(permiso25)
session.add(permiso26)
session.add(permiso27)
session.add(permiso28)
session.add(permiso29)
session.add(permiso30)
session.add(permiso31)
session.add(permiso32)
session.add(permiso33)
session.add(permiso34)
session.add(permiso35)
session.add(permiso36)
session.add(permiso37)
session.add(permiso38)
session.add(permiso39)
session.add(permiso40)
session.add(permiso41)
session.add(permiso42)
session.add(permiso43)
session.add(permiso44)
session.add(permiso45)
session.add(permiso46)
session.add(permiso47)
session.add(permiso48)
session.add(permiso49)
session.add(permiso50)
session.add(permiso51)
session.add(permiso52)
session.add(permiso53)
session.add(permiso54)
session.add(permiso55)


# Tipos de campos permitidos para los atributos
tipoCampo1 = TipoCampo(nombre="numerico", descripcion="Numero real")
tipoCampo2 = TipoCampo(nombre="cadena", descripcion="Cadena de caracteres")
tipoCampo3 = TipoCampo(nombre="fecha", descripcion="atributo con formato fecha")
session.add(tipoCampo1)
session.add(tipoCampo2)
session.add(tipoCampo3)

# Tipos de relaciones permitidas entre los items
tipoRelacion1 = TipoRelacion(nombre="padre-hijo", descripcion="relacion entre items de una misma fase")
tipoRelacion2 = TipoRelacion(nombre="ancestro-sucesor", descripcion="relacion entre items de distintas fases")
session.add(tipoRelacion1)
session.add(tipoRelacion2)

session.add(tipoRelacion1)
session.add(tipoRelacion2)

# Estados del pyto
estadoproyecto1 = EstadoProyecto (nombre="pendiente", descripcion="Por defecto al crear el proyecto")
estadoproyecto2 = EstadoProyecto (nombre="iniciado", descripcion="Se pueden agregar items al pyto")
estadoproyecto3 = EstadoProyecto (nombre="finalizado", descripcion="El proyecto ha sido terminado")
session.add(estadoproyecto1)
session.add(estadoproyecto2)
session.add(estadoproyecto3)

# Estados de los items
estadoitem1 = EstadoItem (nombre="creado", descripcion="estado inicial")
estadoitem2 = EstadoItem (nombre="aprobado", descripcion="estado aprobado")
estadoitem3 = EstadoItem (nombre="en revision", descripcion="estado en revision")
estadoitem4 = EstadoItem (nombre="en lineabase", descripcion="estado en linea base")
estadoitem5 = EstadoItem (nombre="eliminado", descripcion="estado eliminado")
session.add(estadoitem1)
session.add(estadoitem2)
session.add(estadoitem3)
session.add(estadoitem4)
session.add(estadoitem5)

# Estados de las LB
estadolb1 = EstadoLB (nombre="abierta", descripcion="estado inicial")
estadolb2 = EstadoLB (nombre="aprobada", descripcion="estado aprobado")
estadolb3 = EstadoLB (nombre="en revision", descripcion="estado en revision")
estadolb4 = EstadoLB (nombre="rota", descripcion="estado eliminado")
session.add(estadolb1)
session.add(estadolb2)
session.add(estadolb3)
session.add(estadolb4)

# Estados de las fases
estadofase1 = EstadoFase (nombre="pendiente", descripcion="estado inicial")
estadofase2 = EstadoFase (nombre="abierta", descripcion="estado abierto")
estadofase3 = EstadoFase (nombre="cerrada", descripcion="estado final")
estadofase4 = EstadoFase (nombre="en revision", descripcion="estado en revision")
session.add(estadofase1)
session.add(estadofase2)
session.add(estadofase3)
session.add(estadofase4)

# Estados de las SC
estadosc1 = EstadoSC (nombre="aprobada", descripcion="estado aprobado")
estadosc2 = EstadoSC (nombre="rechazada", descripcion="estado rechazado")
estadosc3 = EstadoSC (nombre="pendiente", descripcion="estado inicial")
session.add(estadosc1)
session.add(estadosc2)
session.add(estadosc3)


""" Tablas cargadas con datos para desarrollo y pruebas """

user = Usuario(nombre="Administrador", apellido="Administrador", cedula="0000000",
             usuario="admin", contrasenha=hashlib.sha1("admin").hexdigest(), correo="admin@admin.com")
user2 = Usuario(nombre="Camilo", apellido="Baez", cedula="4250872",
             usuario="camilo", contrasenha=hashlib.sha1("123").hexdigest(), correo="camilo@admin.com")
user3 = Usuario(nombre="Verena", apellido="Ojeda", cedula="3893208",
             usuario="verena", contrasenha=hashlib.sha1("123").hexdigest(), correo="verena@admin.com")
user4 = Usuario(nombre="Joan", apellido="Ruax", cedula="3552348",
             usuario="juanchi", contrasenha=hashlib.sha1("123").hexdigest(), correo="juanchi@admin.com")
user5 = Usuario(nombre="Permiso", apellido="Permiso", cedula="1234567",
             usuario="permiso", contrasenha=hashlib.sha1("permiso").hexdigest(), correo="permiso@admin.com")
user6 = Usuario(nombre="Root", apellido="Root", cedula="0000010",
             usuario="root", contrasenha=hashlib.sha1("root").hexdigest(), correo="root@root.com")


# Proyecto 1
proy1 = Proyecto (nombre="test1", cant_fases="3", cant_comite="3", presupuesto="100")
proy1.estadoproyecto = estadoproyecto2
proy1.lider = user3

session.add(proy1)

fase1p1 = Fase (nombre="fase1", numero="1", descripcion="Analisis", cant_items="0", cant_lineabase="0")
fase1p1.proyecto = proy1
fase1p1.estadofase = estadofase3

fase2p1 = Fase (nombre="fase2", numero="2", descripcion="Desarrollo", cant_items="0", cant_lineabase="0")
fase2p1.proyecto = proy1
fase2p1.estadofase = estadofase2

fase3p1 = Fase (nombre="fase3", numero="3", descripcion="Pruebas", cant_items="0", cant_lineabase="0")
fase3p1.proyecto = proy1
fase3p1.estadofase = estadofase2

session.add(fase1p1)
session.add(fase2p1)
session.add(fase3p1)

# Roles
rol = Rol (nombre="administrador", descripcion="permisos de administrador del sistema")
rol.permisos = [p1, p2, permiso1, permiso2, permiso3, permiso4, permiso5, permiso6, permiso7, permiso8]


rol1 = Rol (nombre="superusuario", descripcion="acceso a todo el sistema")
rol1.permisos = [p3, p4, p5, p6, p7, p8, p9, p10, p15, p16, p17,
                 permiso1, permiso2, permiso3, permiso4, permiso5, permiso6, permiso7, permiso8, permiso9, permiso10,
                 permiso11, permiso12, permiso13, permiso14, permiso15, permiso16, permiso17, permiso18, permiso19, permiso20,
                 permiso21, permiso22, permiso23, permiso24, permiso25, permiso26, permiso27, permiso28, permiso29, permiso30,
                 permiso31, permiso32, permiso33, permiso34, permiso35, permiso36, permiso37, permiso38, permiso39, permiso40,
                 permiso41, permiso42, permiso43, permiso44, permiso45, permiso46, permiso47, permiso48, permiso49, permiso50,
                 permiso51, permiso52, permiso53, permiso54, permiso55]

rol2 = Rol (nombre="Lider_test1", descripcion="permisos del lider test 1")
rol2.permisos = [p3 , p4 , p5 , p6 , p7 , p10 , p15 , permiso9, permiso10, permiso11, permiso12, permiso13, permiso14,
                 permiso15, permiso16, permiso17, permiso18, permiso19, permiso20,
                 permiso21, permiso22, permiso23, permiso24, permiso25, permiso50, permiso51, permiso52, permiso53]

rol3 = Rol (nombre="Lider_test2", descripcion="permisos del lider test 2")
rol3.permisos = [p3 , p4 , p5 , p6 , p7 , p10 , p15 , permiso9, permiso10, permiso11, permiso12, permiso13, permiso14,
                 permiso15, permiso16, permiso17, permiso18, permiso19, permiso20,
                 permiso21, permiso22, permiso23, permiso24, permiso25, permiso50, permiso51, permiso52, permiso53]

rolf1 = Rol (nombre="desf1", descripcion="desarrollador fase 1")
rolf1.fase = fase1p1
rolf1.permisos = [p9, p10, p15, p16, p17,
                 permiso1, permiso2, permiso3, permiso4, permiso5, permiso6, permiso7, permiso8, permiso9, permiso10,
                 permiso11, permiso12, permiso13, permiso14, permiso15, permiso16, permiso17, permiso18, permiso19, permiso20,
                 permiso21, permiso22, permiso23, permiso24, permiso25, permiso26, permiso27, permiso28, permiso29, permiso30,
                 permiso31, permiso32, permiso33, permiso34, permiso35, permiso36, permiso37, permiso38, permiso39, permiso40,
                 permiso41, permiso42, permiso43, permiso44, permiso45, permiso46, permiso47, permiso48, permiso49, permiso50,
                 permiso51, permiso52, permiso53, permiso54, permiso55]

rolf2 = Rol (nombre="desf2", descripcion="desarrollador fase 2")
rolf2.fase = fase2p1
rolf2.permisos = [p9, p10, p15, p16, p17,
                 permiso1, permiso2, permiso3, permiso4, permiso5, permiso6, permiso7, permiso8, permiso9, permiso10,
                 permiso11, permiso12, permiso13, permiso14, permiso15, permiso16, permiso17, permiso18, permiso19, permiso20,
                 permiso21, permiso22, permiso23, permiso24, permiso25, permiso26, permiso27, permiso28, permiso29, permiso30,
                 permiso31, permiso32, permiso33, permiso34, permiso35, permiso36, permiso37, permiso38, permiso39, permiso40,
                 permiso41, permiso42, permiso43, permiso44, permiso45, permiso46, permiso47, permiso48, permiso49, permiso50,
                 permiso51, permiso52, permiso53, permiso54, permiso55]

rolf3 = Rol (nombre="desf3", descripcion="desarrollador fase 3")
rolf3.fase = fase3p1
rolf3.permisos = [p9, p10, p15, p16, p17,
                 permiso1, permiso2, permiso3, permiso4, permiso5, permiso6, permiso7, permiso8, permiso9, permiso10,
                 permiso11, permiso12, permiso13, permiso14, permiso15, permiso16, permiso17, permiso18, permiso19, permiso20,
                 permiso21, permiso22, permiso23, permiso24, permiso25, permiso26, permiso27, permiso28, permiso29, permiso30,
                 permiso31, permiso32, permiso33, permiso34, permiso35, permiso36, permiso37, permiso38, permiso39, permiso40,
                 permiso41, permiso42, permiso43, permiso44, permiso45, permiso46, permiso47, permiso48, permiso49, permiso50,
                 permiso51, permiso52, permiso53, permiso54, permiso55]

rolLider = Rol (nombre="Lider", descripcion="permisos de lider")
rolLider.permisos = [p3 , p4 , p5 , p6 , p7 , p10 , p15 , permiso9, permiso10, permiso11, permiso12, permiso13, permiso14,
                 permiso15, permiso16, permiso17, permiso18, permiso19, permiso20,
                 permiso21, permiso22, permiso23, permiso24, permiso25, permiso50, permiso51, permiso52, permiso53]

rolp3 = Rol (nombre="Lider_Club de Futbol", descripcion="permisos del lider Club de Futbol")
rolp3.permisos = [p3 , p4 , p5 , p6 , p7 , p10 , p15 , permiso9, permiso10, permiso11, permiso12, permiso13, permiso14,
                 permiso15, permiso16, permiso17, permiso18, permiso19, permiso20,
                 permiso21, permiso22, permiso23, permiso24, permiso25, permiso50, permiso51, permiso52, permiso53]

rolp4 = Rol (nombre="Lider_Cocina", descripcion="permisos del lider Cocina")
rolp4.permisos = [p3 , p4 , p5 , p6 , p7 , p10 , p15 , permiso9, permiso10, permiso11, permiso12, permiso13, permiso14,
                 permiso15, permiso16, permiso17, permiso18, permiso19, permiso20,
                 permiso21, permiso22, permiso23, permiso24, permiso25, permiso50, permiso51, permiso52, permiso53]


session.add(rol)
session.add(rol1)
session.add(rol2)
session.add(rol3)
session.add(rolf1)
session.add(rolf2)
session.add(rolf3)
session.add(rolp3)
session.add(rolp4)
session.add(rolLider)

user.roles = [rol]
user2.roles = [rol3, rolf1, rolf2, rolf3]
user3.roles = [rol2, rolf1, rolf2, rolf3]
user4.roles = [rolf1, rolf2, rolp3, rolp4]
user6.roles = [rol1]
session.add(user)
session.add(user2)
session.add(user3)
session.add(user4)
session.add(user6)

tipoItem1 = TipoItem(codigo="RF", nombre="RequerimientoFuncional", descripcion="Requerimiento Funcional")
atributoTipo1 = AtributoTipo(campo="Nombre requerimiento", tamanho='100')
atributoTipo1.tipocampo = tipoCampo1
atributoTipo2 = AtributoTipo(campo="Descripcion requerimiento", tamanho='1000')
atributoTipo2.tipocampo = tipoCampo1
tipoItem1.atributos = [atributoTipo1, atributoTipo2]
tipoItem1.fase = fase1p1

tipoItem2 = TipoItem(codigo="RNF", nombre="RequerimientoNoFuncional", descripcion="Requerimiento No Funcional")
tipoItem2.atributos = [atributoTipo1, atributoTipo2]
tipoItem2.fase = fase1p1

tipoItem3 = TipoItem(codigo="AP", nombre="ActividadPrincipal", descripcion="Actividad Principal")
atributoTipo3 = AtributoTipo(campo="Nombre", tamanho='100')
atributoTipo3.tipocampo = tipoCampo1
atributoTipo4 = AtributoTipo(campo="Duracion", tamanho='10')
atributoTipo4.tipocampo = tipoCampo2
tipoItem3.atributos = [atributoTipo3, atributoTipo4]
tipoItem3.fase = fase2p1

tipoItem4 = TipoItem(codigo="AS", nombre="ActividadSecundaria", descripcion="Actividad Secundaria")
tipoItem4.atributos = [atributoTipo3, atributoTipo4]
tipoItem4.fase = fase2p1

tipoItem5 = TipoItem(codigo="PF", nombre="PruebaFinal", descripcion="Prueba Final")
atributoTipo5 = AtributoTipo(campo="Responsable", tamanho='100')
atributoTipo5.tipocampo = tipoCampo1
atributoTipo6 = AtributoTipo(campo="Fecha")
atributoTipo6.tipocampo = tipoCampo3
tipoItem5.atributos = [atributoTipo5, atributoTipo6]
tipoItem5.fase = fase3p1

session.add(atributoTipo1)
session.add(atributoTipo2)
session.add(atributoTipo3)
session.add(atributoTipo4)
session.add(atributoTipo5)
session.add(atributoTipo6)
session.add(tipoItem1)
session.add(tipoItem2)
session.add(tipoItem3)
session.add(tipoItem4)
session.add(tipoItem5)

# Comite del proyecto
comite1 = Comite(nombre="Comite", descripcion="comite proyecto 1", cant_comite=proy1.cant_comite)
comite1.proyecto = proy1
comite1.usuarios = [proy1.lider, user2, user4]

session.add(comite1)

# Items del proyecto, relaciones y lineas base
item1 = Item(nombre='item1', costo='123456', complejidad="5", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="10", version="1", numeroItem="RF-1",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user2)
item1.estadoItem = estadoitem4
item1.tipoItem = tipoItem1
item1.creador = user2

item2 = Item(nombre='item2', costo='123456', complejidad="2", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="12", version="1", numeroItem="RF-2",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user2)
item2.estadoItem = estadoitem4
item2.tipoItem = tipoItem1
item2.creador = user3

item3 = Item(nombre='item3', costo='123456', complejidad="6", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="RNF-1",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item3.estadoItem = estadoitem4
item3.tipoItem = tipoItem2
item3.creador = user4

item4 = Item(nombre='item4', costo='123456', complejidad="2", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="AP-1",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item4.estadoItem = estadoitem4
item4.tipoItem = tipoItem3
item4.creador = user4

item5 = Item(nombre='item5', costo='123456', complejidad="7", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="AP-2",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item5.estadoItem = estadoitem4
item5.tipoItem = tipoItem3
item5.creador = user4

item6 = Item(nombre='item6', costo='123456', complejidad="10", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="AS-1",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item6.estadoItem = estadoitem2
item6.tipoItem = tipoItem4
item6.creador = user4

item7 = Item(nombre='item7', costo='123456', complejidad="3", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="PF-1",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item7.estadoItem = estadoitem2
item7.tipoItem = tipoItem5
item7.creador = user4

session.add(item1)
session.add(item2)
session.add(item3)
session.add(item4)
session.add(item5)
session.add(item6)
session.add(item7)

item1.fase = fase1p1
item2.fase = fase1p1
item3.fase = fase1p1
item4.fase = fase2p1
item5.fase = fase2p1
item6.fase = fase2p1
item7.fase = fase3p1

rel1 = Relacion(item1, item2, tipoRelacion1)
rel2 = Relacion(item4, item5, tipoRelacion1)
rel3 = Relacion(item2, item6, tipoRelacion2)
rel4 = Relacion(item3, item6, tipoRelacion2)
rel5 = Relacion(item4, item7, tipoRelacion2)
rel6 = Relacion(item5, item7, tipoRelacion2)
rel7 = Relacion(item6, item7, tipoRelacion2)

session.add(rel1)
session.add(rel2)
session.add(rel3)
session.add(rel4)
session.add(rel5)
session.add(rel6)
session.add(rel7)

lineaBase1 = LineaBase(observacion='Linea base 1', cant_items="2")
lineaBase1.estadoLB = estadolb2
lineaBase1.items = [item1, item2]
session.add(lineaBase1)
lineaBase2 = LineaBase(observacion='Linea base 2', cant_items="1")
lineaBase2.estadoLB = estadolb2
lineaBase2.items = [item3]
session.add(lineaBase2)
lineaBase3 = LineaBase(observacion='Linea base 3', cant_items="2")
lineaBase3.estadoLB = estadolb2
lineaBase3.items = [item4, item5]
session.add(lineaBase3)
lineaBase4 = LineaBase(observacion='Linea base 4', cant_items="1")
lineaBase4.estadoLB = estadolb1
lineaBase4.items = [item6]
session.add(lineaBase4)

# Proyecto 2
proy2 = Proyecto (nombre="test2", cant_fases="2", cant_comite="1", presupuesto="100")
proy2.estadoproyecto = estadoproyecto2  # proyecto iniciado
proy2.lider = user2

session.add(proy2)

fase1p2 = Fase (nombre="fase1", numero="1", descripcion="Analisis", cant_items="0", cant_lineabase="0")
fase1p2.proyecto = proy2
fase1p2.estadofase = estadofase3  # la primera fase cerrada

fase2p2 = Fase (nombre="fase2", numero="2", descripcion="Desarrollo", cant_items="0", cant_lineabase="0")
fase2p2.proyecto = proy2
fase2p2.estadofase = estadofase2  # las segunda fase abierta

session.add(fase1p2)
session.add(fase2p2)

# Proyecto 3: Club de futbol
proy3 = Proyecto (nombre="Club de Futbol", cant_fases="4", cant_comite="3", presupuesto="50000")
proy3.estadoproyecto = estadoproyecto2  # proyecto iniciado
proy3.lider = user4

session.add(proy3)

fase1p3 = Fase (nombre="Fase1", numero="1", descripcion="Analisis", cant_items="7", cant_lineabase="0")
fase1p3.proyecto = proy3
fase1p3.estadofase = estadofase2  # la primera fase abierta

fase2p3 = Fase (nombre="Fase2", numero="2", descripcion="Planeacion", cant_items="8", cant_lineabase="0")
fase2p3.proyecto = proy3
fase2p3.estadofase = estadofase1  # la segunda fase pendiente

fase3p3 = Fase (nombre="Fase3", numero="3", descripcion="Ejecucion", cant_items="5", cant_lineabase="0")
fase3p3.proyecto = proy3
fase3p3.estadofase = estadofase1  # la tercera fase pendiente

fase4p3 = Fase (nombre="Fase4", numero="4", descripcion="Evaluacion", cant_items="2", cant_lineabase="0")
fase4p3.proyecto = proy3
fase4p3.estadofase = estadofase1  # la cuarta fase pendiente

session.add(fase1p3)
session.add(fase2p3)
session.add(fase3p3)
session.add(fase4p3)

# Tipos de item Proyecto 3

tipoItem1p3 = TipoItem(codigo="IA", nombre="InformeAnalitico", descripcion="Informe Analitico")
atributoTipo1t1p3 = AtributoTipo(campo="Nombre informe", tamanho='100')
atributoTipo1t1p3.tipocampo = tipoCampo2
atributoTipo2t1p3 = AtributoTipo(campo="Detalle informe", tamanho='1000')
atributoTipo2t1p3.tipocampo = tipoCampo2
tipoItem1p3.atributos = [atributoTipo1t1p3, atributoTipo2t1p3]
tipoItem1p3.fase = fase1p3

session.add(atributoTipo1t1p3)
session.add(atributoTipo2t1p3)
session.add(tipoItem1p3)

tipoItem3p3 = TipoItem(codigo="PRE", nombre="Presupuesto", descripcion="Presupuesto")
atributoTipo1t3p3 = AtributoTipo(campo="Balance", tamanho='20')
atributoTipo1t3p3.tipocampo = tipoCampo1
atributoTipo2t3p3 = AtributoTipo(campo="Detalle", tamanho='100')
atributoTipo2t3p3.tipocampo = tipoCampo2
tipoItem3p3.atributos = [atributoTipo1t3p3, atributoTipo2t3p3]
tipoItem3p3.fase = fase1p3

session.add(atributoTipo1t3p3)
session.add(atributoTipo2t3p3)
session.add(tipoItem3p3)

tipoItem2p3 = TipoItem(codigo="MEM", nombre="Memorandum", descripcion="Memorandum")
atributoTipo1t2p3 = AtributoTipo(campo="Nombre memorandum", tamanho='100')
atributoTipo1t2p3.tipocampo = tipoCampo2
atributoTipo2t2p3 = AtributoTipo(campo="Informacion", tamanho='1000')
atributoTipo2t2p3.tipocampo = tipoCampo2
tipoItem2p3.atributos = [atributoTipo1t2p3, atributoTipo2t2p3]
tipoItem2p3.fase = fase1p3

session.add(atributoTipo1t2p3)
session.add(atributoTipo2t2p3)
session.add(tipoItem2p3)

tipoItem4p3 = TipoItem(codigo="IE", nombre="InformeEstadistico", descripcion="Informe Estadistico")
atributoTipo1t4p3 = AtributoTipo(campo="Nombre informe", tamanho='100')
atributoTipo1t4p3.tipocampo = tipoCampo2
atributoTipo2t4p3 = AtributoTipo(campo="Detalle informe", tamanho='1000')
atributoTipo2t4p3.tipocampo = tipoCampo2
tipoItem4p3.atributos = [atributoTipo1t4p3, atributoTipo2t4p3]
tipoItem4p3.fase = fase1p3

session.add(atributoTipo1t4p3)
session.add(atributoTipo2t4p3)
session.add(tipoItem4p3)

tipoItem5p3 = TipoItem(codigo="IG", nombre="InformeGeneral", descripcion="Informe General")
atributoTipo1t5p3 = AtributoTipo(campo="Nombre informe", tamanho='100')
atributoTipo1t5p3.tipocampo = tipoCampo2
atributoTipo2t5p3 = AtributoTipo(campo="Detalle informe", tamanho='1000')
atributoTipo2t5p3.tipocampo = tipoCampo2
tipoItem5p3.atributos = [atributoTipo1t5p3, atributoTipo2t5p3]
tipoItem5p3.fase = fase4p3

session.add(atributoTipo1t5p3)
session.add(atributoTipo2t5p3)
session.add(tipoItem5p3)

tipoItem6p3 = TipoItem(codigo="GR", nombre="Grafico", descripcion="Grafico de Estado")
atributoTipo1t6p3 = AtributoTipo(campo="Nombre grafico", tamanho='100')
atributoTipo1t6p3.tipocampo = tipoCampo2
atributoTipo2t6p3 = AtributoTipo(campo="Fecha", tamanho='20')
atributoTipo2t6p3.tipocampo = tipoCampo3
tipoItem6p3.atributos = [atributoTipo1t6p3, atributoTipo2t6p3]
tipoItem6p3.fase = fase3p3

session.add(atributoTipo1t6p3)
session.add(atributoTipo2t6p3)
session.add(tipoItem6p3)

tipoItem7p3 = TipoItem(codigo="PRE", nombre="Presupuesto", descripcion="Presupuesto")
atributoTipo1t7p3 = AtributoTipo(campo="Balance", tamanho='20')
atributoTipo1t7p3.tipocampo = tipoCampo1
atributoTipo2t7p3 = AtributoTipo(campo="Detalle", tamanho='100')
atributoTipo2t7p3.tipocampo = tipoCampo2
tipoItem7p3.atributos = [atributoTipo1t7p3, atributoTipo2t7p3]
tipoItem7p3.fase = fase2p3

session.add(atributoTipo1t7p3)
session.add(atributoTipo2t7p3)
session.add(tipoItem7p3)

tipoItem8p3 = TipoItem(codigo="MEM", nombre="Memorandum", descripcion="Memorandum")
atributoTipo1t8p3 = AtributoTipo(campo="Nombre memorandum", tamanho='100')
atributoTipo1t8p3.tipocampo = tipoCampo2
atributoTipo2t8p3 = AtributoTipo(campo="Informacion", tamanho='1000')
atributoTipo2t8p3.tipocampo = tipoCampo2
tipoItem8p3.atributos = [atributoTipo1t8p3, atributoTipo2t8p3]
tipoItem8p3.fase = fase2p3

session.add(atributoTipo1t8p3)
session.add(atributoTipo2t8p3)
session.add(tipoItem8p3)

tipoItem9p3 = TipoItem(codigo="PRE", nombre="Presupuesto", descripcion="Presupuesto")
atributoTipo1t9p3 = AtributoTipo(campo="Balance", tamanho='20')
atributoTipo1t9p3.tipocampo = tipoCampo1
atributoTipo2t9p3 = AtributoTipo(campo="Detalle", tamanho='100')
atributoTipo2t9p3.tipocampo = tipoCampo2
tipoItem9p3.atributos = [atributoTipo1t9p3, atributoTipo2t9p3]
tipoItem9p3.fase = fase3p3

session.add(atributoTipo1t9p3)
session.add(atributoTipo2t9p3)
session.add(tipoItem9p3)

tipoItem10p3 = TipoItem(codigo="MEM", nombre="Memorandum", descripcion="Memorandum")
atributoTipo1t10p3 = AtributoTipo(campo="Nombre memorandum", tamanho='100')
atributoTipo1t10p3.tipocampo = tipoCampo2
atributoTipo2t10p3 = AtributoTipo(campo="Informacion", tamanho='1000')
atributoTipo2t10p3.tipocampo = tipoCampo2
tipoItem10p3.atributos = [atributoTipo1t10p3, atributoTipo2t10p3]
tipoItem10p3.fase = fase3p3

session.add(atributoTipo1t10p3)
session.add(atributoTipo2t10p3)
session.add(tipoItem10p3)

tipoItem11p3 = TipoItem(codigo="IA", nombre="InformeAnalitico", descripcion="Informe Analitico")
atributoTipo1t11p3 = AtributoTipo(campo="Nombre informe", tamanho='100')
atributoTipo1t11p3.tipocampo = tipoCampo2
atributoTipo2t11p3 = AtributoTipo(campo="Detalle informe", tamanho='1000')
atributoTipo2t11p3.tipocampo = tipoCampo2
tipoItem11p3.atributos = [atributoTipo1t11p3, atributoTipo2t11p3]
tipoItem11p3.fase = fase4p3

session.add(atributoTipo1t11p3)
session.add(atributoTipo2t11p3)
session.add(tipoItem11p3)


# Comite del proyecto
comitep3 = Comite(nombre="ComiteP3", descripcion="Comite proyecto 3", cant_comite=proy3.cant_comite)
comitep3.proyecto = proy3
comitep3.usuarios = [proy3.lider, user2, user3]

session.add(comitep3)

# Items del proyecto 3 y relaciones
item1p3 = Item(nombre='Analisis de Presupuesto', costo='100', complejidad="5", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="10", version="1", numeroItem="PRE-1",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user2)
item1p3.estadoItem = estadoitem2
item1p3.tipoItem = tipoItem3p3
item1p3.creador = user2

item2p3 = Item(nombre='Analisis de Zona Geografica', costo='250', complejidad="2", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="12", version="1", numeroItem="IE-1",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user2)
item2p3.estadoItem = estadoitem2
item2p3.tipoItem = tipoItem4p3
item2p3.creador = user3

item3p3 = Item(nombre='Analisis de Alcance', costo='105', complejidad="6", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="IA-1",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item3p3.estadoItem = estadoitem2
item3p3.tipoItem = tipoItem1p3
item3p3.creador = user4

item4p3 = Item(nombre='Definicion de Vision', costo='50', complejidad="2", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="MEM-1",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item4p3.estadoItem = estadoitem2
item4p3.tipoItem = tipoItem2p3
item4p3.creador = user4

item5p3 = Item(nombre='Definicion de Mision', costo='120', complejidad="7", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="MEM-2",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item5p3.estadoItem = estadoitem2
item5p3.tipoItem = tipoItem2p3
item5p3.creador = user4

item6p3 = Item(nombre='Definicion de Valores', costo='156', complejidad="10", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="MEM-3",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item6p3.estadoItem = estadoitem2
item6p3.tipoItem = tipoItem2p3
item6p3.creador = user4

item7p3 = Item(nombre='Definicion de Objetivos', costo='60', complejidad="3", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="MEM-4",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item7p3.estadoItem = estadoitem2
item7p3.tipoItem = tipoItem2p3
item7p3.creador = user4

item8p3 = Item(nombre='Eleccion de Presupuesto', costo='250', complejidad="5", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="10", version="1", numeroItem="PRE-2",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user2)
item8p3.estadoItem = estadoitem1
item8p3.tipoItem = tipoItem7p3
item8p3.creador = user2

item9p3 = Item(nombre='Eleccion de Ubicacion', costo='40', complejidad="2", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="12", version="1", numeroItem="PRE-3",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user2)
item9p3.estadoItem = estadoitem1
item9p3.tipoItem = tipoItem7p3
item9p3.creador = user3

item10p3 = Item(nombre='Contrataciones', costo='120', complejidad="6", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="PRE-4",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item10p3.estadoItem = estadoitem1
item10p3.tipoItem = tipoItem7p3
item10p3.creador = user4

item11p3 = Item(nombre='Alquiler de Sede', costo='30', complejidad="2", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="PRE-5",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item11p3.estadoItem = estadoitem1
item11p3.tipoItem = tipoItem7p3
item11p3.creador = user4

item12p3 = Item(nombre='Apertura de Cuentas', costo='120', complejidad="7", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="MEM-5",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item12p3.estadoItem = estadoitem1
item12p3.tipoItem = tipoItem8p3
item12p3.creador = user4

item13p3 = Item(nombre='Definicion de Responsabilidades', costo='200', complejidad="10", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="MEM-6",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item13p3.estadoItem = estadoitem1
item13p3.tipoItem = tipoItem8p3
item13p3.creador = user4

item14p3 = Item(nombre='Eleccion de Publicidad', costo='16', complejidad="3", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="MEM-7",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item14p3.estadoItem = estadoitem1
item14p3.tipoItem = tipoItem8p3
item14p3.creador = user4

item15p3 = Item(nombre='Aceptacion del Plan', costo='20', complejidad="3", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="MEM-8",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item15p3.estadoItem = estadoitem1
item15p3.tipoItem = tipoItem8p3
item15p3.creador = user4

item16p3 = Item(nombre='Acciones Publicitarias', costo='70', complejidad="5", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="10", version="1", numeroItem="GRA-1",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user2)
item16p3.estadoItem = estadoitem1
item16p3.tipoItem = tipoItem6p3
item16p3.creador = user2

item17p3 = Item(nombre='Compra de Insumos', costo='30', complejidad="2", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="4", version="1", numeroItem="PRE-6",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user2)
item17p3.estadoItem = estadoitem1
item17p3.tipoItem = tipoItem9p3
item17p3.creador = user3

item18p3 = Item(nombre='Disenho del Local', costo='300', complejidad="12", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="15", version="1", numeroItem="GRA-2",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item18p3.estadoItem = estadoitem1
item18p3.tipoItem = tipoItem6p3
item18p3.creador = user4

item19p3 = Item(nombre='Actividades de Inauguracion', costo='120', complejidad="10", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="3", version="1", numeroItem="MEM-9",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item19p3.estadoItem = estadoitem1
item19p3.tipoItem = tipoItem10p3
item19p3.creador = user4

item20p3 = Item(nombre='Inscripciones', costo='10', complejidad="1", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="8", version="1", numeroItem="MEM-10",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item20p3.estadoItem = estadoitem1
item20p3.tipoItem = tipoItem10p3
item20p3.creador = user4

item21p3 = Item(nombre='Reunion Informativa', costo='130', complejidad="10", fechaInicio="2013-01-01",
            fechaFin="2013-01-30", duracion="5", version="1", numeroItem="IA-2",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item21p3.estadoItem = estadoitem1
item21p3.tipoItem = tipoItem11p3
item21p3.creador = user4

item22p3 = Item(nombre='Analisis de Resultados', costo='125', complejidad="9", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="3", version="1", numeroItem="IG-1",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item22p3.estadoItem = estadoitem1
item22p3.tipoItem = tipoItem5p3
item22p3.creador = user4

item1p3.fase = fase1p3
item2p3.fase = fase1p3
item3p3.fase = fase1p3
item4p3.fase = fase1p3
item5p3.fase = fase1p3
item6p3.fase = fase1p3
item7p3.fase = fase1p3
item8p3.fase = fase2p3
item9p3.fase = fase2p3
item10p3.fase = fase2p3
item11p3.fase = fase2p3
item12p3.fase = fase2p3
item13p3.fase = fase2p3
item14p3.fase = fase2p3
item15p3.fase = fase2p3
item16p3.fase = fase3p3
item17p3.fase = fase3p3
item18p3.fase = fase3p3
item19p3.fase = fase3p3
item20p3.fase = fase3p3
item21p3.fase = fase4p3
item22p3.fase = fase4p3

session.add(item1p3)
session.add(item2p3)
session.add(item3p3)
session.add(item4p3)
session.add(item5p3)
session.add(item6p3)
session.add(item7p3)
session.add(item8p3)
session.add(item9p3)
session.add(item10p3)
session.add(item11p3)
session.add(item12p3)
session.add(item13p3)
session.add(item14p3)
session.add(item15p3)
session.add(item16p3)
session.add(item17p3)
session.add(item18p3)
session.add(item19p3)
session.add(item20p3)
session.add(item21p3)
session.add(item22p3)

rel1p3 = Relacion(item2p3, item1p3, tipoRelacion1)
rel2p3 = Relacion(item2p3, item3p3, tipoRelacion1)
rel3p3 = Relacion(item4p3, item5p3, tipoRelacion1)
rel4p3 = Relacion(item5p3, item6p3, tipoRelacion1)
rel5p3 = Relacion(item5p3, item7p3, tipoRelacion1)
rel6p3 = Relacion(item1p3, item8p3, tipoRelacion2)
rel7p3 = Relacion(item2p3, item9p3, tipoRelacion2)
rel8p3 = Relacion(item10p3, item8p3, tipoRelacion1)
rel9p3 = Relacion(item10p3, item9p3, tipoRelacion1)
rel10p3 = Relacion(item12p3, item9p3, tipoRelacion1)
rel11p3 = Relacion(item13p3, item8p3, tipoRelacion1)
rel12p3 = Relacion(item15p3, item12p3, tipoRelacion1)
rel13p3 = Relacion(item15p3, item13p3, tipoRelacion1)
rel14p3 = Relacion(item15p3, item14p3, tipoRelacion1)
rel15p3 = Relacion(item15p3, item16p3, tipoRelacion2)
rel16p3 = Relacion(item15p3, item17p3, tipoRelacion2)
rel17p3 = Relacion(item15p3, item18p3, tipoRelacion2)
rel18p3 = Relacion(item15p3, item19p3, tipoRelacion2)
rel19p3 = Relacion(item19p3, item18p3, tipoRelacion1)
rel20p3 = Relacion(item19p3, item17p3, tipoRelacion1)
rel21p3 = Relacion(item20p3, item19p3, tipoRelacion1)
rel22p3 = Relacion(item16p3, item21p3, tipoRelacion2)
rel23p3 = Relacion(item19p3, item21p3, tipoRelacion2)
rel24p3 = Relacion(item19p3, item22p3, tipoRelacion2)
rel25p3 = Relacion(item20p3, item22p3, tipoRelacion2)

session.add(rel1p3)
session.add(rel2p3)
session.add(rel3p3)
session.add(rel4p3)
session.add(rel5p3)
session.add(rel6p3)
session.add(rel7p3)
session.add(rel8p3)
session.add(rel9p3)
session.add(rel10p3)
session.add(rel11p3)
session.add(rel12p3)
session.add(rel13p3)
session.add(rel14p3)
session.add(rel15p3)
session.add(rel16p3)
session.add(rel17p3)
session.add(rel18p3)
session.add(rel19p3)
session.add(rel20p3)
session.add(rel21p3)
session.add(rel22p3)
session.add(rel23p3)
session.add(rel24p3)
session.add(rel25p3)

# Proyecto 4: Clase de cocina
proy4 = Proyecto (nombre="Cocina", cant_fases="5", cant_comite="3", presupuesto="10000")
proy4.estadoproyecto = estadoproyecto2  # proyecto iniciado
proy4.lider = user4

session.add(proy4)

fase1p4 = Fase (nombre="Fase1", numero="1", descripcion="Ingredientes", cant_items="7", cant_lineabase="0")
fase1p4.proyecto = proy4
fase1p4.estadofase = estadofase2  # la primera fase abierta

fase2p4 = Fase (nombre="Fase2", numero="2", descripcion="Plato Entrada", cant_items="3", cant_lineabase="0")
fase2p4.proyecto = proy4
fase2p4.estadofase = estadofase1  # la segunda fase pendiente

fase3p4 = Fase (nombre="Fase3", numero="3", descripcion="Plato Principal", cant_items="3", cant_lineabase="0")
fase3p4.proyecto = proy4
fase3p4.estadofase = estadofase1  # la tercera fase pendiente

fase4p4 = Fase (nombre="Fase4", numero="4", descripcion="Postre", cant_items="3", cant_lineabase="0")
fase4p4.proyecto = proy4
fase4p4.estadofase = estadofase1  # la cuarta fase pendiente

fase5p4 = Fase (nombre="Fase5", numero="5", descripcion="Evaluacion", cant_items="4", cant_lineabase="0")
fase5p4.proyecto = proy4
fase5p4.estadofase = estadofase1  # la quinta fase pendiente

session.add(fase1p4)
session.add(fase2p4)
session.add(fase3p4)
session.add(fase4p4)
session.add(fase5p4)

# Tipos de item Proyecto 4

tipoItem1p4 = TipoItem(codigo="E", nombre="Evaluacion", descripcion="Evaluacion")
atributoTipo1t1p4 = AtributoTipo(campo="Nombre de Evaluacion", tamanho='100')
atributoTipo1t1p4.tipocampo = tipoCampo2
atributoTipo2t1p4 = AtributoTipo(campo="Detalle Evaluacion", tamanho='1000')
atributoTipo2t1p4.tipocampo = tipoCampo2
tipoItem1p4.atributos = [atributoTipo1t1p4, atributoTipo2t1p4]
tipoItem1p4.fase = fase5p4

session.add(atributoTipo1t1p4)
session.add(atributoTipo2t1p4)
session.add(tipoItem1p4)

tipoItem2p4 = TipoItem(codigo="C", nombre="Compras", descripcion="Compras de ingredientes")
atributoTipo1t2p4 = AtributoTipo(campo="Cantidad", tamanho='20')
atributoTipo1t2p4.tipocampo = tipoCampo1
atributoTipo2t2p4 = AtributoTipo(campo="Costo", tamanho='20')
atributoTipo2t2p4.tipocampo = tipoCampo1
tipoItem2p4.atributos = [atributoTipo1t2p4, atributoTipo2t2p4]
tipoItem2p4.fase = fase1p4

session.add(atributoTipo1t2p4)
session.add(atributoTipo2t2p4)
session.add(tipoItem2p4)

tipoItem3p4 = TipoItem(codigo="P", nombre="Propuestas", descripcion="Propuestas")
atributoTipo1t3p4 = AtributoTipo(campo="Cantidad", tamanho='20')
atributoTipo1t3p4.tipocampo = tipoCampo1
atributoTipo2t3p4 = AtributoTipo(campo="Detalle", tamanho='100')
atributoTipo2t3p4.tipocampo = tipoCampo2
tipoItem3p4.atributos = [atributoTipo1t3p4, atributoTipo2t3p4]
tipoItem3p4.fase = fase1p4

session.add(atributoTipo1t3p4)
session.add(atributoTipo2t3p4)
session.add(tipoItem3p4)


tipoItem4p4 = TipoItem(codigo="CI", nombre="CocinarIngredientes", descripcion="Cocina los ingredientes")
atributoTipo1t4p4 = AtributoTipo(campo="Lugar", tamanho='100')
atributoTipo1t4p4.tipocampo = tipoCampo2
atributoTipo2t4p4 = AtributoTipo(campo="Fecha", tamanho='20')
atributoTipo2t4p4.tipocampo = tipoCampo3
tipoItem4p4.atributos = [atributoTipo1t4p4, atributoTipo2t4p4]
tipoItem4p4.fase = fase2p4

session.add(atributoTipo1t4p4)
session.add(atributoTipo2t4p4)
session.add(tipoItem4p4)

tipoItem5p4 = TipoItem(codigo="PI", nombre="PreparacionIngredientes", descripcion="Preparacion de los Ingredientes")
atributoTipo1t5p4 = AtributoTipo(campo="Nombre", tamanho='100')
atributoTipo1t5p4.tipocampo = tipoCampo2
atributoTipo2t5p4 = AtributoTipo(campo="Costo", tamanho='20')
atributoTipo2t5p4.tipocampo = tipoCampo1
tipoItem5p4.atributos = [atributoTipo1t5p4, atributoTipo2t5p4]
tipoItem5p4.fase = fase2p4

session.add(atributoTipo1t5p4)
session.add(atributoTipo2t5p4)
session.add(tipoItem5p4)

tipoItem6p4 = TipoItem(codigo="AP", nombre="ArmarPlato", descripcion="Armar el plato")
atributoTipo1t6p4 = AtributoTipo(campo="Nombre del plato", tamanho='100')
atributoTipo1t6p4.tipocampo = tipoCampo2
atributoTipo2t6p4 = AtributoTipo(campo="Detalles del plato", tamanho='100')
atributoTipo2t6p4.tipocampo = tipoCampo2
tipoItem6p4.atributos = [atributoTipo1t6p4, atributoTipo2t6p4]
tipoItem6p4.fase = fase2p4

session.add(atributoTipo1t6p4)
session.add(atributoTipo2t6p4)
session.add(tipoItem6p4)

tipoItem7p4 = TipoItem(codigo="CI", nombre="CocinarIngredientes", descripcion="Cocina los ingredientes")
atributoTipo1t7p4 = AtributoTipo(campo="Lugar", tamanho='100')
atributoTipo1t7p4.tipocampo = tipoCampo2
atributoTipo2t7p4 = AtributoTipo(campo="Fecha", tamanho='20')
atributoTipo2t7p4.tipocampo = tipoCampo3
tipoItem7p4.atributos = [atributoTipo1t7p4, atributoTipo2t7p4]
tipoItem7p4.fase = fase3p4

session.add(atributoTipo1t7p4)
session.add(atributoTipo2t7p4)
session.add(tipoItem7p4)

tipoItem8p4 = TipoItem(codigo="PI", nombre="PreparacionIngredientes", descripcion="Preparacion de los Ingredientes")
atributoTipo1t8p4 = AtributoTipo(campo="Nombre", tamanho='100')
atributoTipo1t8p4.tipocampo = tipoCampo2
atributoTipo2t8p4 = AtributoTipo(campo="Costo", tamanho='20')
atributoTipo2t8p4.tipocampo = tipoCampo1
tipoItem8p4.atributos = [atributoTipo1t8p4, atributoTipo2t8p4]
tipoItem8p4.fase = fase3p4

session.add(atributoTipo1t8p4)
session.add(atributoTipo2t8p4)
session.add(tipoItem8p4)

tipoItem9p4 = TipoItem(codigo="AP", nombre="ArmarPlato", descripcion="Armar el plato")
atributoTipo1t9p4 = AtributoTipo(campo="Nombre del plato", tamanho='100')
atributoTipo1t9p4.tipocampo = tipoCampo2
atributoTipo2t9p4 = AtributoTipo(campo="Detalles del plato", tamanho='100')
atributoTipo2t9p4.tipocampo = tipoCampo2
tipoItem9p4.atributos = [atributoTipo1t9p4, atributoTipo2t9p4]
tipoItem9p4.fase = fase3p4

session.add(atributoTipo1t9p4)
session.add(atributoTipo2t9p4)
session.add(tipoItem9p4)

tipoItem10p4 = TipoItem(codigo="CI", nombre="CocinarIngredientes", descripcion="Cocina los ingredientes")
atributoTipo1t10p4 = AtributoTipo(campo="Lugar", tamanho='100')
atributoTipo1t10p4.tipocampo = tipoCampo2
atributoTipo2t10p4 = AtributoTipo(campo="Fecha", tamanho='20')
atributoTipo2t10p4.tipocampo = tipoCampo3
tipoItem10p4.atributos = [atributoTipo1t10p4, atributoTipo2t10p4]
tipoItem10p4.fase = fase4p4

session.add(atributoTipo1t10p4)
session.add(atributoTipo2t10p4)
session.add(tipoItem10p4)

tipoItem11p4 = TipoItem(codigo="PI", nombre="PreparacionIngredientes", descripcion="Preparacion de los Ingredientes")
atributoTipo1t11p4 = AtributoTipo(campo="Nombre", tamanho='100')
atributoTipo1t11p4.tipocampo = tipoCampo2
atributoTipo2t11p4 = AtributoTipo(campo="Costo", tamanho='20')
atributoTipo2t11p4.tipocampo = tipoCampo1
tipoItem11p4.atributos = [atributoTipo1t11p4, atributoTipo2t11p4]
tipoItem11p4.fase = fase4p4

session.add(atributoTipo1t11p4)
session.add(atributoTipo2t11p4)
session.add(tipoItem11p4)

tipoItem12p4 = TipoItem(codigo="AP", nombre="ArmarPlato", descripcion="Armar el plato")
atributoTipo1t12p4 = AtributoTipo(campo="Nombre del plato", tamanho='100')
atributoTipo1t12p4.tipocampo = tipoCampo2
atributoTipo2t12p4 = AtributoTipo(campo="Detalles del plato", tamanho='100')
atributoTipo2t12p4.tipocampo = tipoCampo2
tipoItem12p4.atributos = [atributoTipo1t12p4, atributoTipo2t12p4]
tipoItem12p4.fase = fase4p4

session.add(atributoTipo1t12p4)
session.add(atributoTipo2t12p4)
session.add(tipoItem12p4)


# Comite del proyecto
comitep4 = Comite(nombre="ComiteP4", descripcion="Comite proyecto 4", cant_comite=proy4.cant_comite)
comitep4.proyecto = proy4
comitep4.usuarios = [proy4.lider, user2, user3]

session.add(comitep4)

# Items del proyecto 4 y relaciones
item1p4 = Item(nombre='Eleccion de Plato Entrada', costo='100', complejidad="5", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="10", version="1", numeroItem="P-1",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user2)
item1p4.estadoItem = estadoitem2
item1p4.tipoItem = tipoItem3p4
item1p4.creador = user2

item2p4 = Item(nombre='Compra de Ingredientes Entrada', costo='250', complejidad="2", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="12", version="1", numeroItem="C-1",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user2)
item2p4.estadoItem = estadoitem2
item2p4.tipoItem = tipoItem2p4
item2p4.creador = user3

item3p4 = Item(nombre='Eleccion de Plato Principal', costo='105', complejidad="6", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="P-2",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item3p4.estadoItem = estadoitem2
item3p4.tipoItem = tipoItem3p4
item3p4.creador = user4

item4p4 = Item(nombre='Compra de Ingredientes Principal', costo='50', complejidad="2", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="C-2",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item4p4.estadoItem = estadoitem2
item4p4.tipoItem = tipoItem2p4
item4p4.creador = user4

item5p4 = Item(nombre='Eleccion Postre', costo='120', complejidad="7", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="P-3",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item5p4.estadoItem = estadoitem2
item5p4.tipoItem = tipoItem3p4
item5p4.creador = user4

item6p4 = Item(nombre='Compra de Ingredientes Postre', costo='156', complejidad="10", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="C-3",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item6p4.estadoItem = estadoitem2
item6p4.tipoItem = tipoItem2p4
item6p4.creador = user4

item7p4 = Item(nombre='Eleccion de Bebidas', costo='60', complejidad="3", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="P-4",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item7p4.estadoItem = estadoitem2
item7p4.tipoItem = tipoItem3p4
item7p4.creador = user4

item9p4 = Item(nombre="Preparacion Ingredientes ", costo='40', complejidad="2", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="12", version="1", numeroItem="PI-1",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user2)
item9p4.estadoItem = estadoitem1
item9p4.tipoItem = tipoItem5p4
item9p4.creador = user3

item10p4 = Item(nombre='Coccion de Ingredientes ', costo='120', complejidad="6", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="CI-1",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item10p4.estadoItem = estadoitem1
item10p4.tipoItem = tipoItem4p4
item10p4.creador = user4

item11p4 = Item(nombre='Armar Plato ', costo='30', complejidad="2", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="AP-1",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item11p4.estadoItem = estadoitem1
item11p4.tipoItem = tipoItem6p4
item11p4.creador = user4

item12p4 = Item(nombre=' Preparacion Ingredientes', costo='120', complejidad="7", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="PI-2",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item12p4.estadoItem = estadoitem1
item12p4.tipoItem = tipoItem8p4
item12p4.creador = user4

item13p4 = Item(nombre=' Coccion de Ingredientes', costo='200', complejidad="10", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="CI-2",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item13p4.estadoItem = estadoitem1
item13p4.tipoItem = tipoItem7p4
item13p4.creador = user4

item14p4 = Item(nombre=' Armar Plato', costo='16', complejidad="3", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="AP-2",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item14p4.estadoItem = estadoitem1
item14p4.tipoItem = tipoItem9p4
item14p4.creador = user4

item15p4 = Item(nombre='Preparacion Ingredientes', costo='20', complejidad="3", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="13", version="1", numeroItem="PI-3",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item15p4.estadoItem = estadoitem1
item15p4.tipoItem = tipoItem11p4
item15p4.creador = user4

item16p4 = Item(nombre='Coccion de Ingredientes', costo='70', complejidad="5", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="10", version="1", numeroItem="CI-3",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user2)
item16p4.estadoItem = estadoitem1
item16p4.tipoItem = tipoItem10p4
item16p4.creador = user2

item17p4 = Item(nombre='Armar Plato', costo='30', complejidad="2", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="4", version="1", numeroItem="AP-3",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user2)
item17p4.estadoItem = estadoitem1
item17p4.tipoItem = tipoItem12p4
item17p4.creador = user3

item18p4 = Item(nombre='Evaluacion Plato 1', costo='300', complejidad="12", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="15", version="1", numeroItem="E-1",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item18p4.estadoItem = estadoitem1
item18p4.tipoItem = tipoItem1p4
item18p4.creador = user4

item19p4 = Item(nombre='Evaluacion Plato 2', costo='120', complejidad="10", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="3", version="1", numeroItem="E-2",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item19p4.estadoItem = estadoitem1
item19p4.tipoItem = tipoItem1p4
item19p4.creador = user4

item20p4 = Item(nombre='Evaluacion Plato 3', costo='10', complejidad="1", fechaInicio="2013-01-01",
             fechaFin="2013-01-30", duracion="8", version="1", numeroItem="E-3",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item20p4.estadoItem = estadoitem1
item20p4.tipoItem = tipoItem1p4
item20p4.creador = user4

item21p4 = Item(nombre='Evaluacion General', costo='130', complejidad="10", fechaInicio="2013-01-01",
            fechaFin="2013-01-30", duracion="5", version="1", numeroItem="E-4",
             fechaUltimaMod="2013-01-01", usuarioUltimaMod=user3)
item21p4.estadoItem = estadoitem1
item21p4.tipoItem = tipoItem1p4
item21p4.creador = user4

item1p4.fase = fase1p4
item2p4.fase = fase1p4
item3p4.fase = fase1p4
item4p4.fase = fase1p4
item5p4.fase = fase1p4
item6p4.fase = fase1p4
item7p4.fase = fase1p4
item9p4.fase = fase2p4
item10p4.fase = fase2p4
item11p4.fase = fase2p4
item12p4.fase = fase3p4
item13p4.fase = fase3p4
item14p4.fase = fase3p4
item15p4.fase = fase4p4
item16p4.fase = fase4p4
item17p4.fase = fase4p4
item18p4.fase = fase5p4
item19p4.fase = fase5p4
item20p4.fase = fase5p4
item21p4.fase = fase5p4

session.add(item1p4)
session.add(item2p4)
session.add(item3p4)
session.add(item4p4)
session.add(item5p4)
session.add(item6p4)
session.add(item7p4)
# session.add(item8p4)
session.add(item9p4)
session.add(item10p4)
session.add(item11p4)
session.add(item12p4)
session.add(item13p4)
session.add(item14p4)
session.add(item15p4)
session.add(item16p4)
session.add(item17p4)
session.add(item18p4)
session.add(item19p4)
session.add(item20p4)
session.add(item21p4)
#relaciones en una fase
rel1p4 = Relacion(item1p4, item2p4, tipoRelacion1)
rel2p4 = Relacion(item3p4, item4p4, tipoRelacion1)
rel3p4 = Relacion(item5p4, item6p4, tipoRelacion1)
rel5p4 = Relacion(item5p4, item7p4, tipoRelacion1)
rel6p4 = Relacion(item3p4, item7p4, tipoRelacion1)
rel7p4 = Relacion(item1p4, item7p4, tipoRelacion1)
rel8p4 = Relacion(item9p4, item10p4, tipoRelacion1)
rel9p4 = Relacion(item10p4, item11p4, tipoRelacion1)
rel10p4 = Relacion(item12p4, item13p4, tipoRelacion1)
rel11p4 = Relacion(item13p4, item14p4, tipoRelacion1)
rel12p4 = Relacion(item15p4, item16p4, tipoRelacion1)
rel13p4 = Relacion(item16p4, item17p4, tipoRelacion1)
rel14p4 = Relacion(item18p4, item21p4, tipoRelacion1)
rel15p4 = Relacion(item19p4, item21p4, tipoRelacion1)
rel16p4 = Relacion(item20p4, item21p4, tipoRelacion1)
#relaciones entre fases
rel17p4 = Relacion(item2p4, item9p4, tipoRelacion2)
rel18p4 = Relacion(item11p4, item12p4, tipoRelacion2)
rel19p4 = Relacion(item14p4, item15p4, tipoRelacion2)
rel20p4 = Relacion(item17p4, item18p4, tipoRelacion2)
rel21p4 = Relacion(item17p4, item19p4, tipoRelacion2)
rel22p4 = Relacion(item17p4, item20p4, tipoRelacion2)


session.add(rel1p4)
session.add(rel2p4)
session.add(rel3p4)
session.add(rel5p4)
session.add(rel6p4)
session.add(rel7p4)
session.add(rel8p4)
session.add(rel9p4)
session.add(rel10p4)
session.add(rel11p4)
session.add(rel12p4)
session.add(rel13p4)
session.add(rel14p4)
session.add(rel15p4)
session.add(rel16p4)
session.add(rel17p4)
session.add(rel18p4)
session.add(rel19p4)
session.add(rel20p4)
session.add(rel21p4)
session.add(rel22p4)


rolf1p3= Rol (nombre="Desarrollador fase 1", descripcion="desarrollador fase 1")
rolf1p3.fase = fase1p3
rolf1p3.permisos = [p9, p10, p15, p16, p17,
                 permiso1, permiso2, permiso3, permiso4, permiso5, permiso6, permiso7, permiso8, permiso9, permiso10,
                 permiso11, permiso12, permiso13, permiso14, permiso15, permiso16, permiso17, permiso18, permiso19, permiso20,
                 permiso21, permiso22, permiso23, permiso24, permiso25, permiso26, permiso27, permiso28, permiso29, permiso30,
                 permiso31, permiso32, permiso33, permiso34, permiso35, permiso36, permiso37, permiso38, permiso39, permiso40,
                 permiso41, permiso42, permiso43, permiso44, permiso45, permiso46, permiso47, permiso48, permiso49, permiso50,
                 permiso51, permiso52, permiso53, permiso54, permiso55]

rolf2p3= Rol (nombre="Desarrollador fase 2", descripcion="desarrollador fase 2")
rolf2p3.fase = fase2p3
rolf2p3.permisos = [p9, p10, p15, p16, p17,
                 permiso1, permiso2, permiso3, permiso4, permiso5, permiso6, permiso7, permiso8, permiso9, permiso10,
                 permiso11, permiso12, permiso13, permiso14, permiso15, permiso16, permiso17, permiso18, permiso19, permiso20,
                 permiso21, permiso22, permiso23, permiso24, permiso25, permiso26, permiso27, permiso28, permiso29, permiso30,
                 permiso31, permiso32, permiso33, permiso34, permiso35, permiso36, permiso37, permiso38, permiso39, permiso40,
                 permiso41, permiso42, permiso43, permiso44, permiso45, permiso46, permiso47, permiso48, permiso49, permiso50,
                 permiso51, permiso52, permiso53, permiso54, permiso55]

rolf3p3= Rol (nombre="Desarrollador fase 3", descripcion="desarrollador fase 3")
rolf3p3.fase = fase3p3
rolf3p3.permisos = [p9, p10, p15, p16, p17,
                 permiso1, permiso2, permiso3, permiso4, permiso5, permiso6, permiso7, permiso8, permiso9, permiso10,
                 permiso11, permiso12, permiso13, permiso14, permiso15, permiso16, permiso17, permiso18, permiso19, permiso20,
                 permiso21, permiso22, permiso23, permiso24, permiso25, permiso26, permiso27, permiso28, permiso29, permiso30,
                 permiso31, permiso32, permiso33, permiso34, permiso35, permiso36, permiso37, permiso38, permiso39, permiso40,
                 permiso41, permiso42, permiso43, permiso44, permiso45, permiso46, permiso47, permiso48, permiso49, permiso50,
                 permiso51, permiso52, permiso53, permiso54, permiso55]

rolf4p3= Rol (nombre="Desarrollador fase 4", descripcion="desarrollador fase 4")
rolf4p3.fase = fase4p3
rolf4p3.permisos = [p9, p10, p15, p16, p17,
                 permiso1, permiso2, permiso3, permiso4, permiso5, permiso6, permiso7, permiso8, permiso9, permiso10,
                 permiso11, permiso12, permiso13, permiso14, permiso15, permiso16, permiso17, permiso18, permiso19, permiso20,
                 permiso21, permiso22, permiso23, permiso24, permiso25, permiso26, permiso27, permiso28, permiso29, permiso30,
                 permiso31, permiso32, permiso33, permiso34, permiso35, permiso36, permiso37, permiso38, permiso39, permiso40,
                 permiso41, permiso42, permiso43, permiso44, permiso45, permiso46, permiso47, permiso48, permiso49, permiso50,
                 permiso51, permiso52, permiso53, permiso54, permiso55]

session.add(rolf1p3)
session.add(rolf2p3)
session.add(rolf3p3)
session.add(rolf4p3)


user2.roles = [rol3, rolf1, rolf2, rolf3, rolf1p3, rolf2p3, rolf3p3, rolf4p3]
user3.roles = [rol2, rolf1, rolf2, rolf3, rolf1p3, rolf2p3, rolf3p3, rolf4p3]
user4.roles = [rolf1, rolf2, rolp3, rolp4, rolf1p3, rolf2p3, rolf3p3, rolf4p3]

session.add(user2)
session.add(user3)
session.add(user4)


# Commit a la base de datos
session.commit()
session.close()
